package com.ito.areaTrabajo.control.home;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.DefaultTreeModel;
import org.zkoss.zul.Div;
import org.zkoss.zul.TreeModel;
import org.zkoss.zul.TreeNode;
import org.zkoss.zul.Window;

import com.ito.areTrabajo.arbol_SeedTool.plantillas.DatosArbol;
import com.ito.areTrabajo.arbol_SeedTool.plantillas.ListaPlantillas;
import com.ito.areTrabajo.arbol_SeedTool.plantillas.NodosArbol;
import com.ito.areaTrabajo.arbol.control.ProyectoTreeRender;
import com.ito.areaTrabajo.arbol.datos.pojo.ProyectoData;
import com.ito.areaTrabajo.arbol.modelo_arbol.ProyectoList;
import com.ito.areaTrabajo.arbol.modelo_arbol.ProyectoTreeNode;
import com.ito.ito.areaTrabajo.modelo.Usuario;

public class EncargadoHome extends SelectorComposer<Component> {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Wire
	private Div centro;

	@Wire
	private Window win;

	public void doAfterCompose(Component comp) throws Exception {
		super.doAfterCompose(comp);

		if (Executions.getCurrent().getSession()
				.getAttribute("listaPlantillas") != null) {
			if ((Integer) Executions.getCurrent().getSession()
					.getAttribute("listaPlantillas") == 1) {
				// Se limmpia la variable de sesion que indica que se llega aqui
				// despues de crear un proyecto
				Executions.getCurrent().getSession()
						.removeAttribute("listaPlantillas");
				// se limpia el contenido del div
				centro.getChildren().clear();
				// Se carga la ventana que tenga la lista de las plantillas y se
				// coloca en el div centro
				Executions.createComponents("lista_plantillas.zul", centro,
						null);
			}
		}

	}

	@Listen("onClick=#solNuevoProyectoBtn")
	public void abrirNuevoProyecto() {
		centro.getChildren().clear();
		// Se carga la seccion de nuevo proyecto dentro del div centro
		Executions.createComponents("/captura/nuevo_proyecto.zul", centro, null);

	}

	// public TreeModel<TreeNode<ProyectoData>> getTreeModel() {
	// ProyectoList listaArbolProyectos=new ProyectoList();
	// ProyectoTreeNode<ProyectoData>
	// proyectos=listaArbolProyectos.obtenerArbolProyectos((Usuario)Executions.getCurrent().getSession().getAttribute("usuario"));
	// if(proyectos==null){
	// return null;
	// }
	// return new DefaultTreeModel<ProyectoData>(proyectos);
	// }
	 public ProyectoTreeRender getTreeRender() {
	 return new ProyectoTreeRender(centro);
	 }

	public TreeModel<TreeNode<DatosArbol>> getTreeModel() {
		ListaPlantillas listaPlantillas = new ListaPlantillas();
		NodosArbol<DatosArbol> proyectoPlantilla = listaPlantillas
				.obtenerArbolProyectos(((Usuario) Executions.getCurrent()
						.getSession().getAttribute("usuario")).getIdUsuario());
		if (proyectoPlantilla == null) {
			return null;
		}
		return new DefaultTreeModel<DatosArbol>(proyectoPlantilla);
	}
}
